Mật mã học hiện đại Lịch_sử_mật_mã_học

Shannon

Nhiều người cho rằng kỷ nguyên của mật mã học hiện đại được bắt đầu với Claude Shannon, người được coi là cha đẻ của mật mã toán học. Năm 1949 ông đã công bố bài Lý thuyết về truyền thông trong các hệ thống bảo mật (Communication Theory of Secrecy Systems) trên tập san Bell System Technical Journal - Tập san kỹ thuật của hệ thống Bell - và một thời gian ngắn sau đó, trong cuốn Mathematical Theory of Communication - Lý thuyết toán học trong truyền thông - cùng với tác giả Warren Weaver. Những công trình này, cùng với những công trình nghiên cứu khác của ông về lý thuyết về tin học và truyền thông (information and communication theory), đã thiết lập một nền tảng lý thuyết cơ bản cho mật mã học và thám mã học. Với ảnh hưởng đó, mật mã học hầu như bị thâu tóm bởi các cơ quan truyền thông mật của chính phủ, chẳng hạn như NSA, và biến mất khỏi tầm hiểu biết của công chúng. Rất ít các công trình được tiếp tục công bố, cho đến thời kỳ giữa thập niên 1970, khi mọi sự được thay đổi.

Tiêu chuẩn mật mã

Thời kỳ giữa thập niên kỷ 1970 được chứng kiến hai tiến bộ chính lớn (công khai). Đầu tiên là sự công bố đề xuất Tiêu chuẩn mật mã hóa dữ liệu (Data Encryption Standard) trong "Công báo Liên bang" (Federal Register) ở nước Mỹ vào ngày 17 tháng 3 năm 1975. Với đề cử của Cục Tiêu chuẩn Quốc gia (National Bureau of Standards - NBS) (hiện là NIST), bản đề xuất DES được công ty IBM (International Business Machines) đệ trình trở thành một trong những cố gắng trong việc xây dựng các công cụ tiện ích cho thương mại, như cho các nhà băng và cho các tổ chức tài chính lớn. Sau những chỉ đạo và thay đổi của NSA, vào năm 1977, nó đã được chấp thuận và được phát hành dưới cái tên Bản Công bố về Tiêu chuẩn Xử lý Thông tin của Liên bang (Federal Information Processing Standard Publication - FIPS) (phiên bản hiện nay là FIPS 46-3). DES là phương thức mật mã công khai đầu tiên được một cơ quan quốc gia như NSA "tôn sùng". Sự phát hành bản đặc tả của nó bởi NBS đã khuyến khích sự quan tâm chú ý của công chúng cũng như của các tổ chức nghiên cứu về mật mã học.

Năm 2001, DES đã chính thức được thay thế bởi AES (viết tắt của Advanced Encryption Standard - Tiêu chuẩn mã hóa tiên tiến) khi NIST công bố phiên bản FIPS 197. Sau một cuộc thi tổ chức công khai, NIST đã chọn Rijndael, do hai nhà mật mã người Bỉ đệ trình, và nó trở thành AES. Hiện nay DES và một số biến thể của nó (như Tam phần DES (Triple DES); xin xem thêm trong phiên bản FIPS 46-3), vẫn còn được sử dụng, do trước đây nó đã được gắn liền với nhiều tiêu chuẩn của quốc gia và của các tổ chức. Với chiều dài khoá chỉ là 56-bit, nó đã được chứng minh là không đủ sức chống lại những tấn công kiểu vét cạn (brute force attack - tấn công dùng bạo lực). Một trong những cuộc tấn công kiểu này được thực hiện bởi nhóm "nhân quyền cyber" (cyber civil-rights group) tên là Tổ chức tiền tuyến điện tử (Electronic Frontier Foundation) vào năm 1997, và đã phá mã thành công trong 56 tiếng đồng hồ—câu chuyện này được nhắc đến trong cuốn Cracking DES (Phá vỡ DES), được xuất bản bởi "O'Reilly and Associates". Do kết quả này mà hiện nay việc sử dụng phương pháp mật mã hóa DES nguyên dạng, có thể được khẳng định một cách không nghi ngờ, là một việc làm mạo hiểm, không an toàn, và những thông điệp ở dưới sự bảo vệ của những hệ thống mã hóa trước đây dùng DES, cũng như tất cả các thông điệp được truyền gửi từ năm 1976 trở đi sử dụng DES, đều ở trong tình trạng rất đáng lo ngại. Bất chấp chất lượng vốn có của nó, một số sự kiện xảy ra trong năm 1976, đặc biệt là sự kiện công khai nhất của Whitfield Diffie, chỉ ra rằng chiều dài khóa mà DES sử dụng (56-bit) là một khóa quá nhỏ. Đã có một số nghi ngờ xuất hiện nói rằng một số các tổ chức của chính phủ, ngay tại thời điểm hồi bấy giờ, cũng đã có đủ công suất máy tính để phá mã các thông điệp dùng DES; rõ ràng là những cơ quan khác cũng đã có khả năng để thực hiện việc này rồi.

Khóa công khai

Tiến triển thứ hai, vào năm 1976, có lẽ còn đột phá hơn nữa, vì tiến triển này đã thay đổi nền tảng cơ bản trong cách làm việc của các hệ thống mật mã hóa. Đó chính là công bố của bài viết phương hướng mới trong mật mã học Lưu trữ 2003-12-22 tại Wayback Machine (New Directions in Cryptography) của Whitfield DiffieMartin Hellman. Bài viết giới thiệu một phương pháp hoàn toàn mới về cách thức phân phối các khóa mật mã. Đây là một bước tiến khá xa trong việc giải quyết một vấn đề cơ bản trong mật mã học, vấn đề phân phối khóa, và nó được gọi là trao đổi khóa Diffie-Hellman (Diffie-Hellman key exchange). Bài viết còn kích thích sự phát triển gần như tức thời của một lớp các thuật toán mật mã hóa mới, các thuật toán chìa khóa bất đối xứng (asymmetric key algorithms).

Trước thời kỳ này, hầu hết các thuật toán mật mã hóa hiện đại đều là những thuật toán khóa đối xứng (symmetric key algorithms), trong đó cả người gửi và người nhận phải dùng chung một khóa, tức khóa dùng trong thuật toán mật mã, và cả hai người đều phải giữ bí mật về khóa này. Tất cả các máy điện cơ dùng trong thế chiến II, kể cả mã Caesar và mã Atbash, và về bản chất mà nói, kể cả hầu hết các hệ thống mã được dùng trong suốt quá trình lịch sử nữa đều thuộc về loại này. Đương nhiên, khóa của một mã chính là sách mã (codebook), và là cái cũng phải được phân phối và giữ gìn một cách bí mật tương tự.

Do nhu cầu an ninh, khóa cho mỗi một hệ thống như vậy nhất thiết phải được trao đổi giữa các bên giao thông liên lạc bằng một phương thức an toàn nào đấy, trước khi họ sử dụng hệ thống (thuật ngữ thường được dùng là 'thông qua một kênh an toàn'), ví dụ như bằng việc sử dụng một người đưa thư đáng tin cậy với một cặp tài liệu được khóa vào cổ tay bằng một cặp khóa tay, hoặc bằng cuộc gặp gỡ mặt đối mặt, hay bằng một con chim bồ câu đưa thư trung thành... Vấn đề này chưa bao giờ được xem là dễ thực hiện, và nó nhanh chóng trở nên một việc gần như không thể quản lý được khi số lượng người tham gia tăng lên, hay khi người ta không còn các kênh an toàn để trao đổi khóa nữa, hoặc lúc họ phải liên tục thay đổi các chìa khóa - một thói quen nên thực hiện trong khi làm việc với mật mã. Cụ thể là mỗi một cặp truyền thông cần phải có một khóa riêng nếu, theo như thiết kế của hệ thống mật mã, không một người thứ ba nào, kể cả khi người ấy là một người dùng, được phép giải mã các thông điệp. Một hệ thống thuộc loại này được gọi là một hệ thống dùng chìa khóa mật, hoặc một hệ thống mật mã hóa dùng khóa đối xứng. Hệ thống trao đổi khóa Diffie-Hellman (cùng những phiên bản được nâng cấp kế tiếp hay các biến thể của nó) tạo điều kiện cho các hoạt động này trong các hệ thống trở nên dễ dàng hơn rất nhiều, đồng thời cũng an toàn hơn, hơn tất cả những gì có thể làm trước đây.

Ngược lại, đối với mật mã hóa dùng khóa bất đối xứng, người ta phải có một cặp khóa có quan hệ toán học để dùng trong thuật toán, một dùng để mã hóa và một dùng để giải mã. Một số những thuật toán này, song không phải tất cả, có thêm đặc tính là một trong các khóa có thể được công bố công khai trong khi cái kia không thể nào (ít nhất bằng những phương pháp hiện có) được suy ra từ khóa 'công khai'. Trong các hệ thống này, khóa còn lại phải được giữ bí mật và nó thường được gọi bằng một cái tên, hơi có vẻ lộn xộn, là khóa 'cá nhân' (private key) hay khóa bí mật. Một thuật toán thuộc loại này được gọi là một hệ thống 'khóa công khai' hay hệ thống khóa bất đối xứng. Đối với những hệ thống dùng các thuật toán này, mỗi người nhận chỉ cần có một cặp chìa khóa mà thôi (bất chấp số người gửi là bao nhiêu đi chăng nữa). Trong 2 khóa, một khóa luôn được giữ bí mật và một được công bố công khai nên không cần phải dùng đến một kênh an toàn để trao đổi khóa. Chỉ cần đảm bảo khóa bí mật không bị lộ thì an ninh của hệ thống vẫn được đảm bảo và có thể sử dụng cặp khóa trong một thời gian dài. Đặc tính đáng ngạc nhiên này của các thuật toán tạo khả năng, cũng như tính khả thi, cho phép việc triển khai các hệ thống mật mã có chất lượng cao một cách rộng rãi, và ai cũng có thể sử dụng chúng được.

Các thuật toán mật mã khóa bất đối xứng dựa trên một lớp các bài toán gọi là hàm một chiều (one-way functions). Các hàm này có đặc tính là rất dễ dàng thực hiện theo chiều xuôi nhưng lại rất khó (về khối lượng tính toán) để thực hiện theo chiều ngược lại. Một ví dụ kinh điển cho lớp bài toán này là hàm nhân hai số nguyên tố rất lớn. Ta có thể tính tích số của 2 số nguyên tố này một cách khá dễ dàng nhưng nếu chỉ cho biết tích số thì rất khó để tìm ra 2 thừa số ban đầu. Do những đặc tính của hàm một chiều, hầu hết các khóa có thể lại là những khóa yếu và chỉ còn lại một phần nhỏ có thể dùng để làm khóa. Vì thế, các thuật toán khóa bất đối xứng đòi hỏi độ dài khóa lớn hơn rất nhiều so với các thuật toán khóa đối xứng để đạt được độ an toàn tương đương. Ngoài ra, việc thực hiện thuật toán khóa bất đối xứng đòi hỏi khối lượng tính toán lớn hơn nhiều lần so với thuật toán khóa đối xứng. Bên cạnh đó, đối với các hệ thống khóa đối xứng, việc tạo ra một khóa ngẫu nhiên để làm khóa phiên chỉ dùng trong một phiên giao dịch là khá dễ dàng. Vì thế, trong thực tế người ta thường dùng kết hợp: hệ thống mật mã khóa bất đối xứng được dùng để trao đổi khóa phiên còn hệ thống mật mã khóa đối xứng dùng khóa phiên có được để trao đổi các bản tin thực sự.

Mật mã học dùng khóa bất đối xứng, tức trao đổi khóa Diffie-Hellman, và những thuật toán nổi tiếng dùng khóa công khai / khóa bí mật (ví dụ như cái mà người ta vẫn thường gọi là thuật toán RSA), tất cả hình như đã được xây dựng một cách độc lập tại một cơ quan tình báo của Anh, trước thời điểm công bố của Diffie and Hellman vào năm 1976. Sở chỉ huy giao thông liên lạc của chính phủ (Government Communications Headquarters - GCHQ) - Cơ quan tình báo Anh Quốc - có xuất bản một số tài liệu quả quyết rằng chính họ đã xây dựng mật mã học dùng khóa công khai, trước khi bài viết của Diffie và Hellman được công bố. Nhiều tài liệu mật do GCHQ viết trong quá trình những năm 19601970, là những bài cuối cùng cũng dẫn đến một số kế hoạch đại bộ phận tương tự như phương pháp mật mã hóa RSA và phương pháp trao đổi chìa khóa Diffie-Hellman vào năm 19731974. Một số tài liệu này hiện được phát hành, và những nhà sáng chế (James H. Ellis, Clifford Cocks, và Malcolm Williamson) cũng đã cho công bố (một số) công trình của họ.

Chính trị trong mật mã học

Kết quả của việc này đã phá vỡ tính gần như độc quyền về mật mã học của các tổ chức chính phủ trên toàn thế giới (Xem Crypto (Bí mật) của Steven Levy để biết thêm về bài báo nói đến điều luật gây tranh cãi ở Mỹ). Lần đầu tiên trong lịch sử, những người không làm việc trong các tổ chức của chính phủ được phép truy cập các mật mã mà ngay cả chính phủ cũng khó có thể bẻ gãy được. Rất nhiều cuộc tranh cãi và xung đột, công khai lẫn bí mật, khởi sự tức thời và đến bây giờ cũng vẫn chưa lắng xuống. Tại rất nhiều các quốc gia, xuất khẩu mật mã (export of cryptography) vẫn còn là một vấn đề bị hạn chế. Mãi đến năm 1996 việc xuất khẩu mật mã ở Mỹ dùng những chìa khóa dài hơn 40 bit, vẫn còn là một việc hết sức giới hạn. Ngay cả đến năm 2004, cựu giám đốc của FBI, Louis Freeh, cũng đã làm chứng trước Hội đồng 9/11 (9/11 Commission), kêu gọi việc phát hành những luật pháp mới chống lại việc sử dụng mật mã trong môi trường công cộng.

Người biện hộ nổi tiếng nhất đối với việc cho phép công chúng sử dụng các mật mã có độ tin cậy cao là Phil Zimmermann, với việc xuất bản chương trình ứng dụng PGP (Pretty Good Privacy) của mình vào năm 1991. Khi ông cảm thấy bị đe dọa bởi các điều lệ pháp luật, lúc đó đang được chính phủ Mỹ cân nhắc, và nó đòi hỏi là tất cả các giải pháp mật mã trong nước Mỹ phải tạo các cửa sau (back doors) - cho phép chính phủ theo dõi việc sử dụng, hoặc đọc nội dung của chúng - ông đã cho phát hành một phiên bản PGP miễn phí. Những cố gắng của ông trong việc phát hành PGP trên toàn cầu đã mang lại cho ông một cuộc đấu tranh lâu dài với Bộ Tư Pháp (Justice Department) vì viện tội là ông đã vi phạm các điều khoản hạn chế trong xuất khẩu (export restrictions). Bộ Tư Pháp cuối cùng phải hủy bỏ bản cáo trạng chống lại Zimmermann, và sự phân bố phần mềm PGP miễn phí được lan truyền trên khắp toàn cầu, cuối cùng nó đã trở thành một tiêu chuẩn mở (open standard) (xem RFC2440 hay OpenPGP)

Các kỹ thuật phá mã hiện đại

Những nhà mật mã học hiện đại đôi khi phải khai thác một số lớn các mạch tích hợp (integrated circuit) - hay còn gọi là vi mạch. Mạch điện này là một phần cơ bản trong Bộ phá mã DES của Tổ chức tiền tuyến điện tử (EFF DES cracker) và nó bao gồm 1800 chip tùy biến và có thể bẻ gãy (dùng phương pháp vét cạn) một khóa DES chỉ trong vòng vài ngày.

Trong khi những mã hiện đại tương tự như AES được đại bộ phận cho rằng là những mã không thể phá được, một số những thiết kế nghèo nàn vẫn đôi khi được chấp nhận và sử dụng, và do đó đã gây ra không ít những vụ phá mã, dùng phương pháp thám mã, đã xảy ra trong những thập kỷ gần đây. Ví dụ về những thiết kế mật mã bị bẻ gãy nổi tiếng bao gồm DES, mã hóa WEP phiên bản đầu tiên dùng trong kỹ thuật truyền thông vô tuyến Wi-Fi, Hệ thống Xáo trộn Nội dung (Content Scrambling System) được sử dụng để mã hóa và quản lý việc sử dụng DVD, và với các mã A5/1, A5/2 được sử dụng trong điện thoại di động GSM. Thêm vào đó, chưa có một chứng minh nào khẳng định được nền tảng toán học của mật mã dùng khóa công khai là 'không thể bẻ gãy', cho nên tiến triển của toán học trong tương lai có thể sẽ làm cho những hệ thống phụ thuộc vào chúng trở nên mất an toàn. Trong khi một số nhà quan sát nhìn trước được nguy cơ bị chọc thủng như vậy, thì độ lớn khóa đề nghị đối với việc bảo an lại càng ngày càng phải tăng lên, vì công suất máy tính cần thiết để bẻ gãy các mã càng ngày càng trở nên rẻ tiền hơn và sẵn có.